﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using SMA.GENTEv1;

public partial class _includes__beneficios_dtBenefAC : System.Web.UI.UserControl
{
    private int idConvencao = 0;
    private int idContrato = 0;
    private int idPrestador = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string tipoRegra = "";

            if (Request.QueryString["TipoRegra"] != null)
                tipoRegra = Request.QueryString["TipoRegra"].ToString();
            else if (Session["TipoRegraBenef"] != null)
                tipoRegra = Session["TipoRegraBenef"].ToString();

            if (Request.QueryString["IdConvencao"] != null)
                idConvencao = int.Parse(Request.QueryString["IdConvencao"].ToString());

            if (Session["IdContratoBenefVT"] != null)
                idContrato = int.Parse(Session["IdContratoBenefVT"].ToString());

            if (Session["IdPrestadorBenefVT"] != null)
                idPrestador = int.Parse(Session["IdPrestadorBenefVT"].ToString());

            Carregar(tipoRegra);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    #region Métodos
    private void CarregarConfigLegal()
    {
        try
        {
            ConfiguracaoRegraLegal configLegal = new ConfiguracaoRegraLegal();
            List<ConfiguracaoRegraLegal> listConfigLegal = configLegal.SelectRegraAtual((int)TipoBeneficio.TipoBenef.Auxilio_Creche);

            foreach (ConfiguracaoRegraLegal item in listConfigLegal)
            {
                configLegal = new ConfiguracaoRegraLegal(item.IdConfiguracaoRegraLegal, true);
            }

            if (configLegal.IdConfiguracaoRegraLegal != 0)
            {
                lblIdadeMaxDependente.Text = configLegal.Valor.ToString().Substring(0, configLegal.Valor.ToString().IndexOf(","));
                lblDtInicialVigencia.Text = configLegal.DtInicio.ToString("dd/MM/yyyy");
                lblDtFinalVigencia.Text = configLegal.DtFim.ToString("dd/MM/yyyy");

                trDt.Visible = true;
                btnInserir.Visible = true;
                btnVerHistorico.Visible = true;
            }
            else
            {
                trDt.Visible = false;
                btnVerHistorico.Visible = false;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void CarregarConfigConvencao()
    {
        try
        {
            ConfiguracaoRegraConvencao configConvencao = new ConfiguracaoRegraConvencao();
            List<ConfiguracaoRegraConvencao> listConfigConvencao = configConvencao.SelectRegraAtual((int)TipoBeneficio.TipoBenef.Auxilio_Creche, idConvencao);

            foreach (ConfiguracaoRegraConvencao item in listConfigConvencao)
            {
                configConvencao = new ConfiguracaoRegraConvencao(item.IdConfiguracaoRegraConvencao, true);
            }

            if (configConvencao.IdConfiguracaoRegraConvencao != 0)
            {
                lblIdadeMaxDependente.Text = configConvencao.Valor.ToString().Substring(0, configConvencao.Valor.ToString().IndexOf(","));
                lblDtInicialVigencia.Text = configConvencao.DtInicio.ToString("dd/MM/yyyy");
                lblDtFinalVigencia.Text = configConvencao.DtFim.ToString("dd/MM/yyyy");

                trDt.Visible = true;
                btnInserir.Visible = true;
                btnVerHistorico.Visible = true;
            }
            else
            {
                trDt.Visible = false;
                btnVerHistorico.Visible = false;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void CarregarConfigContrato()
    {
        try
        {
            ConfiguracaoRegraContrato configContrato = new ConfiguracaoRegraContrato();
            List<ConfiguracaoRegraContrato> listConfigContrato = configContrato.SelectRegraAtual((int)TipoBeneficio.TipoBenef.Auxilio_Creche, idContrato);

            foreach (ConfiguracaoRegraContrato item in listConfigContrato)
            {
                configContrato = new ConfiguracaoRegraContrato(item.IdConfiguracaoRegraContrato, true);
            }

            if (configContrato.IdConfiguracaoRegraContrato != 0)
            {
                lblIdadeMaxDependente.Text = configContrato.Valor.ToString().Substring(0, configContrato.Valor.ToString().IndexOf(","));
                lblDtInicialVigencia.Text = configContrato.DtInicio.ToString("dd/MM/yyyy");
                lblDtFinalVigencia.Text = configContrato.DtFim.ToString("dd/MM/yyyy");

                trDt.Visible = true;
                btnInserir.Visible = true;
                btnVerHistorico.Visible = true;
            }
            else
            {
                trDt.Visible = false;
                btnVerHistorico.Visible = false;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void CarregarConfigLiberalidade()
    {
        try
        {
            ConfiguracaoRegraLiberalidade configLiberalidade = new ConfiguracaoRegraLiberalidade();
            List<ConfiguracaoRegraLiberalidade> listConfigLiberalidade = configLiberalidade.SelectRegraAtual((int)TipoBeneficio.TipoBenef.Auxilio_Creche, idPrestador);

            foreach (ConfiguracaoRegraLiberalidade item in listConfigLiberalidade)
            {
                configLiberalidade = new ConfiguracaoRegraLiberalidade(item.IdConfiguracaoRegraLiberalidade, true);
            }

            if (configLiberalidade.IdConfiguracaoRegraLiberalidade != 0)
            {
                lblIdadeMaxDependente.Text = configLiberalidade.Valor.ToString().Substring(0, configLiberalidade.Valor.ToString().IndexOf(","));
                lblDtInicialVigencia.Text = configLiberalidade.DtInicio.ToString("dd/MM/yyyy");
                lblDtFinalVigencia.Text = configLiberalidade.DtFim.ToString("dd/MM/yyyy");

                trDt.Visible = true;
                btnInserir.Visible = true;
                btnVerHistorico.Visible = true;
            }
            else
            {
                trDt.Visible = false;
                btnVerHistorico.Visible = false;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void Carregar(string tipoRegra)
    {
        try
        {
            switch (tipoRegra)
            {
                case "2":
                    btnInserir.OnClientClick = "ShowInsertBenefAC(" + idConvencao.ToString() + "); return false;";
                    btnVerHistorico.OnClientClick = "ShowHistBenefAC(" + idConvencao.ToString() + "); return false;";
                    CarregarConfigConvencao();
                    break;
                case "3":
                    btnInserir.OnClientClick = "ShowInsertBenefAC(" + idContrato.ToString() + "); return false;";
                    btnVerHistorico.OnClientClick = "ShowHistBenefAC(" + idContrato.ToString() + "); return false;";
                    CarregarConfigContrato();
                    break;
                case "4":
                    btnInserir.OnClientClick = "ShowInsertBenefAC(" + idPrestador.ToString() + "); return false;";
                    btnVerHistorico.OnClientClick = "ShowHistBenefAC(" + idPrestador.ToString() + "); return false;";
                    CarregarConfigLiberalidade();
                    break;
                default:
                    btnInserir.OnClientClick = "ShowInsertBenefAC(); return false;";
                    btnVerHistorico.OnClientClick = "ShowHistBenefAC(); return false;";
                    CarregarConfigLegal();
                    break;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void ExibirMensagem(bool _msgErro, string _textoMsg)
    {
        try
        {
            OcultaMsgPagina(false);
            if (_msgErro)
            {
                lblResultado.ForeColor = System.Drawing.Color.Red;
                lblResultado.Text = _textoMsg;
            }
            else
            {
                lblResultado.ForeColor = System.Drawing.Color.Black;
                lblResultado.Text = _textoMsg;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void OcultaMsgPagina(bool oculta)
    {
        trMensagem.Visible = !oculta;
    }
    #endregion
}
